package cn.edu.lingnan.service;

import cn.edu.lingnan.domain.Dto.*;
import cn.edu.lingnan.domain.Vo.JoinProjectVo;
import cn.edu.lingnan.domain.Vo.ProjectVo;
import cn.edu.lingnan.domain.Vo.StatisticsVo;
import cn.edu.lingnan.domain.pojo.PageBean;
import cn.edu.lingnan.domain.pojo.Project;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public interface ProjectService {
    PageBean list(ProjectDto projectDto);

    ProjectVo findById(Integer id);

    void deleteMember(Integer projectId, Integer userId);

    Integer addMember(Integer projectId, Integer userId);

    void stopProject(Integer projectId, Integer status);

    Integer deleteProject(Integer projectId, Integer userId, String password);

    void updateProject(UpdateProjectDto updateProjectDto);

    void addProject(AddProjectDto addProjectDto);

    void exportExcel(String userName, HttpServletResponse response) throws IOException;

    Integer joinProject(Integer projectId, Integer userId);

    List<JoinProjectVo> listJoinProject();

    void agreeJoinProject(Integer projectId, Integer userId);

    void refuseJoinProject(RejectJoin rejectJoin);

    List<JoinProjectVo> listMyJoinProject(Integer userId,Integer status);

    void cancelApply(Integer userId, Integer projectId);

    List<Project> listMyProject(Integer userId, Integer status,Integer type);

    void cancelProject(Integer projectId);

    List<Project> listNeedCheckProject();

    void checkProject(RejectOrAgreeCreate rejectOrAgreeCreate);

    StatisticsVo statistics();
}
